package com.tedu.API.threadAPI;

/**
 * 线程 ----创建三类
 * 第一种：子类   继承Thread 方案---【使用率不高】
 *        ①.编写一个子类MyThread1 继承 Thread
 *        ②.子类，重写run方法
 *        ③.实例化 MyThread1对象 调用start()方法【启动线程】
 * 第二种： 子类  实现Runnable接口 方案--【推荐用法】
 *         ①。编写子类MyRunnable1 实现 Runnable 接口
 *         ②.子类，强制重写run方法【线程运行】
 *         ③。实例化MyRunnable对象【没有start方法】
 *         ④。创建Thread 对象 ，把实例化对象MyRunnable1 对象通过构造器
 *         ⑤。调用Thread对象start方法
 * 线程  继承 Thread 内嵌Runnable 接口 重写run方法
 *       javaOOP---缺点：java支持单继承，子类继承Thread，
 *         无法拓展：不仅是线程，不能继承其他类
 *       启动线程方法 start() ---线程生命周期
 *       缺点：线程创建不明确
 *       实现Runnable 真正线程运行---定义run方法，线程运行状态
 *       缺点：线程创建不方便---项目：步骤逻辑清晰
 *       优点：线程还可以实现---拓展性
 * 第三种   匿名内部类实现线程--->Lambda
 */
public class ThreadAPI {
    public static void main(String[] args) {
        //③实例化MyThread1对象
        Thread1 mt1=new Thread1();
        mt1.start();
        //实例化Thread2
        Thread2 mt2=new Thread2();
        mt2.start();
    }
}
//①MyThread1 子类 | 线程实现类
class Thread1 extends Thread{
    //②。重写run方法
    public void run() {
        for (int i=0;i<100;i++){
            System.out.println("给我困的啊");
        }
    }
}
class Thread2 extends Thread{
    public void run() {
        for (int i=0;i<100;i++){
            System.out.println("Thread2");
        }
    }
}
